1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for ad hoc check box selection in graphical user interfaces.
2. Description of Related Art
The role of check boxes in user interface design is problematic for users making ad hoc selections of computer data. The typical use of check boxes is to allow users to select multiple items in a list. Prior to this invention, users generally selected multiple data items using check boxes in one of several ways, including, for example: xe2x80x98select all,xe2x80x99 xe2x80x98clear all,xe2x80x99 xe2x80x98toggle all,xe2x80x99 xe2x80x98click individual items,xe2x80x99 and xe2x80x98select all in a group.xe2x80x99
While each of these methods allows selection of multiple data items, each is problematic. Viewed from an efficiency perspective, selection is especially problematic in cases where users make ad hoc choices from a check box list. Consider the hypothetical example of a 100-item list, in which the user desires to select 57 of the items. The hypothetical list can be described as xe2x80x9cad hocxe2x80x9d in that no preexisting logical grouping is sufficient to allow selection of items with a single user action. To select the 57 items, a user could xe2x80x98select all,xe2x80x99 then clear 43 individual items by clicking each, resulting in a total of 44 clicks to select the 57 items. Or the user could select 43 items the user does not want, then xe2x80x98toggle all,xe2x80x99 thus selecting the preferred items, again with a total of 44 clicks. Alternatively, the user could click 57 items by single-clicking each item desired. If there is a xe2x80x98select all in groupsxe2x80x99 available in the user""s GUI, then the number of clicks is dependent on a predefined logical system. In any event, the user would not be able to select 57 ad hoc items with a single click-and-drag operation.
Ad hoc selection is important because users have their own reasons for selecting data in a list; their preferences cannot always be predicted. Moreover, in most cases user preferences in selecting should not be limited to predefined logical groupings. Any system that limits the user to preset groupings undermines the goal of allowing maximal user flexibility, which is the point of check box lists in the first place. While each of the above methods in combination allows for ad hoc selection, each is unable to provide an efficient means of selecting data in an ad hoc fashion.
The xe2x80x98select allxe2x80x99 option includes too many items when the user seeks to make ad hoc selections. Obviously, the xe2x80x98clear allxe2x80x99 option selects too few, since no selection is made. The xe2x80x98toggle allxe2x80x99 requires a number of individual clicks and is dependent on preexisting selections. Likewise, the xe2x80x98click individual itemsxe2x80x99 option requires individual clicks for each item.
The xe2x80x98select all in groupxe2x80x99 option has its own inefficiencies. First, xe2x80x98select all in groupxe2x80x99 requires development effort to determine preexisting groups of check box items.
Second, regardless of how well the groups are formulated, ad hoc selection still requires single clicking after a group is selected. That is, the xe2x80x98select all in groupxe2x80x99 option provides access to structured means for selection of data, which is the opposite of ad hoc selection. While the xe2x80x98select all in groupxe2x80x99 option could shorten the number of clicks to make a particular set of ad hoc selections, that is not its purpose. Moreover, selecting by group can in some cases actually increase the number of clicks required to choose ad hoc items, depending on how closely the groups mirror the choices intended by the user.
Some attempts have been made to deal with these efficiency problems. For example, the invention described in IBM""s U.S. Pat. No. 6,104,398, xe2x80x9cFast and efficient means for grouped object selection and deselection,xe2x80x9d attempts to overcome inefficiencies in item lists requiring users to select or deselect individual items. The ""398 patent proposed a means for aggregating check box and other data items into predetermined groups so that a single operation could select multiple items. While this was a useful step forward, the method of the ""398 patent required such groupings to be determined on a predefined basis. The problem of ad hoc selection of both contiguous and non-contiguous data in a list remained to be solved. Moreover, the method of the ""398 patent required the instantiation of new controls external to the check box list itself, or in the alternative that some check boxes control others, thus expanding the number of items in a list. A method that constrained selection controls to the minimum necessary to complete the task was still needed.
The minimum number of selection controls needed to complete an ad hoc selection is equal to the number of items in a list. In other words, there is no need to instantiate controls external to a list if the list is to be chosen in an ad hoc fashion. Fundamentally, the problem with check box selection prior to this invention was in dealing with ad hoc selection of data. That is, in any list of computerized data relying on check boxes, users may need to select both contiguous and non-contiguous data. To select on an ad hoc basis means either checking individual items or relying on groups structured in an a priori fashion. A system that addresses these problems should allow users to select among items with the minimum number of operations necessary. For the purpose of a check box list, that minimum number of operations to select one or more items on an ad hoc basis is a single click-and-drag operation. Prior to this invention, no method has existed to allow for ad hoc selection of check box items with a single click-and-drag operation.
In fact, structured groupings substitute a priori judgments made by those who define the structure for judgments made by users, potentially imposing new inefficiencies. Selecting a structured group may require de-selection by the user. Ad hoc selection, then, does not imply a lack of structure in selections, although such may be the case, but instead that users impose their own structure on information. The user""s definition of the user""s intended list structure is generally by definition more efficient than judgments external to the user. It is effectively an unreliable accident if a predefined grouping aids ad hoc selection.
The present invention is a significant departure from previous approaches. For example, the xe2x80x9cOfficial Guidelines for User Interface Developers and Designersxe2x80x9d issued by Microsoft (Redmond, Wash.: Microsoft, 1999) specifies that check box controls are selected on an individual basis:
xe2x80x9cWhen the user clicks a check box with the primary mouse button, either in the check box or on its label, the check box is selected and its state is toggled. When the user presses the mouse button, the input focus moves to the control and the check box displays its pressed appearance. Like option buttons and other controls, if the user moves the pointer off the check box or its label while pressing the mouse button, the control""s appearance returns to its original state and retains the input focus. The state of the check box does not change until the mouse button is released. To change a control""s setting, the pointer must be over the check box or its label when the user releases the mouse button.xe2x80x9d
In summary, this means that for check box controls relying on mouse clicks, check box selection occurs on an individual basis. The user must click on each item s/he wishes to select; the state of selections is not transferred from one check box to another. If the mouse moves off the check box, the check box reverts to its original state and the user cannot continue to select by hovering over other check box items. The limitations of prior approaches, then, are traceable to their reliance on mouse clicks as such.
Exemplary embodiments of the invention include a method for toggling check box status, implemented as a software program installed and operating on a computer comprising a computer processor coupled to computer memory, the computer comprising also a computer display which itself further comprises a graphical user interface (xe2x80x9cGUIxe2x80x9d). Exemplary embodiments typically include a method implemented on the GUI, the GUI operated by a user using a pointing device, the pointing device having a capability of indicating a touch on a check box, the pointing device having associated with it through the GUI a pointer displayed upon the GUI and responsive to physical motion of the pointing device, and the GUI having displayed upon it a set of check boxes comprising a multiplicity of check boxes, wherein each check box has a status comprising an indication whether a check box is selected. Exemplary embodiments typically include detecting a touch event on a check box, toggling the status of the check box, and repeatedly, for a multiplicity of repetitions, carrying out the steps of detecting a drag event for each additional check box onto which a user drags the pointer, wherein the user drags the pointer onto at least one additional check box, and toggling the status of each additional touch box for which a drag event is detected.
In exemplary embodiments of the invention, for at least a portion of the repetitions, one or more further check boxes are typically positioned upon the display screen in the GUI between two of the additional check boxes, where a path along which the pointer drags between the two additional check boxes lies outside the further check boxes, and where the statuses of the further check boxes remain unaffected. In some exemplary embodiments, detecting a touch event typically includes changing a pointer device status to xe2x80x98activexe2x80x99 while a pointer for the device is positioned on the check box.
In exemplary embodiments, the pointing device is typically a mouse, a stylus pressed upon a touch sensitive pad, or a finger pressed upon a touch sensitive screen. In other exemplary embodiments the check box has a GUI image and toggling the status of the check box typically includes changing the GUI image of the check box to indicate a change in the status of the check box.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular descriptions of exemplary embodiments of the invention as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts of exemplary embodiments of the invention.